Contact State

<#4909#> The visual effect of a contact upon the user interface is controlled by the value of its <#429#>state<#429#> slot and is related to two factors24.1.

These factors are not independent. In CLUE, it is invalid for a contact to be mapped but unmanaged, because this contradicts the purpose of geometry management24.2. Thus, the <#451#>state<#451#> slot of a contact has one of three values.

:withdrawn The contact is unmanaged and unmapped.
:managed The contact is managed but unmapped.
:mapped The contact is both managed and mapped.

The conditions corresponding to a contact's <#460#>state<#460#> are not guaranteed to be satisfied until the contact is realized. CLUE calls the <#463#>update-state<#463#> function in order to force consistency of the state of all contacts belonging to a <#465#>contact-display<#465#> (see Section~#ch:contact-display#466>).

<#4626#> <#4156#><#468#>update-state Function, contact-display<#468#><#4156#>

#tex2html_wrap_inline9701#
<#4626#>

#tex2html_wrap_inline9704#

The default <#488#>state<#488#> value is <#489#>:mapped<#489#>. As a result, unless specified otherwise, all contacts will automatically be viewable after <#490#>update-state<#490#> is called (in particular, after a call to <#491#>process-next-event<#491#>). After initialization and realization, the <#492#>(setf contact-state)<#492#> accessor method causes transitions in a contact's state and its visible effect. The most common usages are setting a contact's state to <#493#>:withdrawn<#493#> to withdraw it or to <#494#>:mapped<#494#> to present it.

=0 <#4919#>=0 <#4923#>